A memory unit accessed by content, rather than by address or location, is called an associative memory or Content Addressable Memory (CAM). A CAM may comprise an array of memory cells arranged in a row and column format. The content in each memory cell may be compared using comparison circuitry, e.g., a comparator, associated with each memory cell. Since the content in each memory cell is compared, the entire memory is compared. By comparing the entire memory, the data content may be randomly stored without regard to an addressing scheme which would otherwise be required.
Traditionally, each memory cell in the CAM stores one bit of digital information. In some CAMs, each memory cell may include “dual ended” logic, such that the memory cell makes available both the true state and the complement state of the stored digital information. The true state and complement state of the stored digital information may be used by a comparison circuit embedded within a memory cell to determine if the contents of that memory cell matches an input, e.g., field in an instruction storing a source address. A comparison circuit may be designed with a plurality of what are commonly referred to as “legs” or “sets” where each set comprises a plurality of transistors as discussed further below in the detailed description section in conjunction with FIG. 1.
Logic circuits, including memory arrays, are often tested for what is commonly referred to as “stuck-at-faults.” Stuck-at-faults may refer to a transistor being stuck in a particular state, e.g., low state represented by 0 or a high state represented by the binary digit 1. If one of the transistors in the comparison circuit suffered from a stuck-at-fault, then the comparison circuit may incorrectly indicate whether a match or mismatch occurred.
Consequently, there is a need in the art for testing the comparison circuit guaranteeing full stuck-at-fault coverage of a content addressable memory array whose cell contents are associated with a comparison circuit configured to detect matching or mismatching of the cell contents.